home *** CD-ROM | disk | FTP | other *** search
/ PC-SIG: World of Games / PC-SIG World of Games (CDRM1080710) (1993).iso / ENT / DISK0001.ZIP / TICTACTO.BAS < prev    next >
BASIC Source File  |  1982-03-11  |  3KB  |  69 lines

  1. 10 CLEAR ,,1024
  2. 20 GOSUB 390  'set up arrays
  3. 30 GOSUB 50
  4. 40 GOSUB 440
  5. 50 COLOR 0,2
  6. 60 CLS
  7. 70 INPUT "Please enter your name, player A.",PLANAM$(1)
  8. 80 INPUT "Enter your name, player B.",PLANAM$(2)
  9. 90 CLS
  10. 100 PRINT "Fine, "PLANAM$(1)" and "PLANAM$(2)" let's get started!"
  11. 110 PRINT "The object of this game is to place 3 x's or 3 o's in a row."
  12. 120 PRINT "The row can be horizontal, vertical or diagonal."
  13. 130 PRINT "The first one to complete a row wins the game."
  14. 140 PRINT "Press any key to start the game"
  15. 150 C$=INKEY$:IF C$="" THEN 150
  16. 160 CLS
  17. 170 LOCATE 8,25: PRINT "    "+CHR$(186)+"    "+CHR$(186);
  18. 180 LOCATE 9,25: PRINT "    "+CHR$(186)+"    "+CHR$(186);
  19. 190 LOCATE 11,25: PRINT "    "+CHR$(186)+"    "+CHR$(186);
  20. 200 LOCATE 12,25: PRINT "    "+CHR$(186)+"    "+CHR$(186);
  21. 210 LOCATE 10,24:PRINT STRING$(5,205)+CHR$(206)+STRING$(4,205)+CHR$(206)+STRING$(5,205);
  22. 220 LOCATE 13,24:PRINT STRING$(5,205)+CHR$(206)+STRING$(4,205)+CHR$(206)+STRING$(5,205);
  23. 230 LOCATE 14,25: PRINT "    "+CHR$(186)+"    "+CHR$(186);
  24. 240 LOCATE 15,25: PRINT "    "+CHR$(186)+"    "+CHR$(186);
  25. 250 LOCATE 9,27:PRINT "1":LOCATE 9,31:PRINT "2":LOCATE 9,36:PRINT "3"
  26. 260 LOCATE 12,27:PRINT "4":LOCATE 12,31:PRINT "5":LOCATE 12,36:PRINT "6"
  27. 270 LOCATE 15,27:PRINT "7":LOCATE 15,31:PRINT "8":LOCATE 15,36:PRINT "9"
  28. 280 LOCATE 17,1:PRINT PLANAM$(1)", your selection will cause an X to be placed on the grid,"
  29. 290 LOCATE 18,1:PRINT "and yours, "PLANAM$(2)", will cause an O to appear.":RETURN
  30. 300 LOCATE 9,27:PRINT C$:RETURN
  31. 310 LOCATE 9,31:PRINT C$:RETURN
  32. 320 LOCATE 9,36:PRINT C$:RETURN
  33. 330 LOCATE 12,27:PRINT C$:RETURN
  34. 340 LOCATE 12,31:PRINT C$:RETURN
  35. 350 LOCATE 12,36:PRINT C$:RETURN
  36. 360 LOCATE 15,27:PRINT C$:RETURN
  37. 370 LOCATE 15,31:PRINT C$:RETURN
  38. 380 LOCATE 15,36:PRINT C$:RETURN
  39. 390 DIM PLANAM$(2)  'numbers of players
  40. 400 DIM PLY(10)    'game array to track progress
  41. 410 DIM WC(24)     'possible winning combinations
  42. 420 DATA 1,2,3,4,5,6,7,8,9,1,4,7,1,5,9,2,5,8,3,5,7,3,6,9
  43. 430 FOR I = 1 TO 24:READ WC(I):NEXT I:RETURN 'fill in the winning array
  44. 440 FOR P = 1 TO 9
  45. 450 IF PLANUM <>1 THEN PLANUM = 1: PN$ = PLANAM$(1) ELSE PLANUM = 2:PN$ = PLANAM$(2)
  46. 460 GOSUB 510    'request player input
  47. 470 NEXT P
  48. 480 LOCATE 23,1:PRINT "Game's over, no winner! Want to try another?":GOTO 650
  49. 490 LOCATE 20,6:PRINT "Make another selection "PN$"               "
  50. 500 FOR Z= 1 TO 3000:NEXT Z:LOCATE 22,6:PRINT "                                  ":GOTO 520
  51. 510 LOCATE 20,6:PRINT "Select a number, "PN$".                    "
  52. 520 LOCATE 21,3:INPUT A$
  53. 530 A = VAL(A$)
  54. 540 IF A<1 OR A>9 THEN GOTO 490
  55. 550 IF PLY(A) <> 0 THEN LOCATE 22,6:PRINT "Block already taken": GOTO 490
  56. 560 IF PLANUM = 1 THEN C$="X":ELSE C$ ="O"
  57. 570 ON A GOSUB 300,310,320,330,340,350,360,370,380
  58. 580 PLY(A) = PLANUM
  59. 590 GOSUB 600:RETURN
  60. 600 FOR A1 = 0 TO 21   'who wins?
  61. 610   FOR A2 = 1 TO 3:IF PLY(WC(A1+A2))<>PLANUM THEN 670
  62. 620   NEXT A2
  63. 630   IF PLANUM =1 THEN WIN$ = PLANAM$(1): ELSE WIN$ = PLANAM$(2)
  64. 640 LOCATE 23,1:PRINT "You win " WIN$ "! Good game! Do you want to try another?"
  65. 650 INPUT YN$
  66. 660 IF YN$ = "yes" THEN 10: ELSE END
  67. 670 A1 = A1 + 2
  68. 680 NEXT A1:RETURN
  69.  game! Do you want to